//
// Created by Administrator on 2023/3/30.
/**
23春伴学挑战赛02：C++语言  难度: low
 http://www.aisichuang.com/ascts/centestCentre/toCentestCentrePre.do
 解体视频: 似乎还是有问题
 https://app19lud1c73566.h5.xiaoeknow.com/p/course/video/v_64210e6be4b09d7237889c70?product_id=p_64210cfce4b0cf39e6b25577
题目描述
查看题目信息

现在给定两个长度为n的正整数序列a_1​,a_2​,⋯,a_n​,b_1​,b_2​,⋯,b_n​a1​​,a2​​,⋯,an​​,b1​​,b2​​,⋯,bn​​。

问存在多少对数对(i,j),1≤i<j≤n(i,j),1≤i<j≤n满足ai/aj=bj/bi

输入格式

输入第一行，一个正整数n，表示序列的长度。

接下来n行，每行两个正整数a_i​,b_iai​​,bi​​。
输出格式

单个整数：表示表示满足题意的数对的个数。
样例输入

3
4 5
3 8
10 2

样例输出
1
问题提示
对于 50% 的数据，1≤n≤10001≤n≤1000
对于 100% 的数据，1≤n≤1,000,000,1≤a_i​,b_i​≤10001≤n≤1,000,000,1≤ai​​,bi​​≤1000
**/

#include <iostream>
using namespace std;
int x[1000000];
int main()
{
    int n;
    cin>>n;
    int a,b;
    for (int i = 0; i < n; ++i)
    {
        cin>>a>>b;
        x[a*b]++;
    }
    int ans=0;
    for (int i = 0; i < 1000000; ++i)
    {
//        if(x[i]>1)
            ans+=(x[i]*(x[i]-1))/2;
    }
    cout<<ans;
    return 0;
}